package org.ricks.ioc.utils;

import java.lang.reflect.Array;
import java.util.List;
import java.util.Objects;

public class ArrayUtils {

    public static <T> T[] listToArray(List<T> list, Class<T> clazz) {

        assert Objects.nonNull(list);
        assert Objects.nonNull(clazz);
        var length = list.size();
        var objectArray = Array.newInstance(clazz, length);
        System.arraycopy(list.toArray(),0, objectArray, 0,length);
        return (T[]) objectArray;
    }

    /**
     * 数组是否为空
     *
     * @param <T>   数组元素类型
     * @param array 数组
     * @return 是否为空
     */
    public static <T> boolean isEmpty(T[] array) {
        return array == null || array.length == 0;
    }

}
